perm filename DOLBY.TO[LSP,JRA]1 blob
sn#179981 filedate 1975-10-06 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 The question has come up again this year about the content of Math
C00008 ENDMK
Cā;
The question has come up again this year about the content of Math
280. There are at least two responses to the complaint that the
course as given is not compatible with that outlined in the CIS
prospectus. The first answer is that this year's course will indeed
cover the material listed except for a detailed examination of
sorting and searching techniques and a study of generalized business
data management systems. Most of the material was covered last
semester but certainly not in the order suggested.
The second response is more to the point: the course outline is not
indicative of a modern course in data structures. At best it reflects
the thinking of a certain group established in 1967-1968. Other areas
of computer science have changed significantly in the intervening
years and data structures courses are no exceptions. So the first
objection is that the course outline as given --a copy of that
advertised in Curriculum68-- is out of date. Second, the outline
itself even gives a distorted view of the material suggested from
reading the accompanying article in the CACM. A reading of the
committee's report giving a more detailed discussion of the purpose
and content of such a course is more reasonable. I seriously doubt
the "orthogonal lists" are a crucial part of a course on data
structures. Indeed I suspect that the only reason for their
occurrence in the abstract is that they are listed as a topic in
Knuth's Chapter 2, Volume 1. (There is more than a passing similarity
between the data structures abstract and the contents of that
Volume.)
A more fundamental argument concerns background of the contemporary
student in computer science. In the earlier days books and courses
which dealt mainly with tricks and techniques were apropos. The
students were typically semi-professionals working in the field and
needed to upgrade their skills to handle clever coding tricks for
representing data, just as a premium was then placed on being able to
write clever self-modifying code. But the field and its students have
changed. Many students are coming from a purely scholastic
environment with no backgrond which would tend to motivate the study
of techniques common in structuring data. Thus an integral part of a
introductory course in data structures must provide motivation. This
is even more true in a program like that at San Jose where the
students come from such a varied background. The course must supply
motivation while requiring no prerequisite but intelligence. If we
cannot presuppose that as a prerequisite then we are in trouble.
The field has changed as well as the student. We are now beginning to
realize that trickery and techniques are not the appropriate way to
program computers. This realization is expressed in the ideas of
structurred programming, programming with abstraction, modularity
... . The basic idea being expressed is "clarity". Programs must be
clear and readible, easily modifiable and hopefully amenable to
informal justification if not formal proof. Machine dependent
encoding of data structures and their associated algorithms are most
definitely not in keeping with this spirit of modern programming.